#ifndef DW_SYSTEM_WINDOW_EVENT_LISTENER
#	define DW_SYSTEM_WINDOW_EVENT_LISTENER

#include "system/windoweventarg.h"

namespace dw {
	namespace system {

class Window::EventListener
{
public : //! @name Callbacks
	//! @{
	virtual void onRegistered(Window* sender, EventArg& eventArg) { ; }
	virtual void onUnregistered(Window* sender, EventArg& eventArg) { ; }

	virtual void onActivate(Window* sender, EventArg& eventArg) { ; }
	virtual void onDeactivate(Window* sender, EventArg& eventArg) { ; }

	virtual void onClose(Window* sender, EventArg& eventArg) { ; }

	virtual void onPaint(Window* sender, PaintEventArg& eventArg) { ; }
	virtual void onMove(Window* sender, MoveEventArg& eventArg) { ; }
	virtual void onSize(Window* sender, SizeEventArg& eventArg) { ; }

	virtual void onKeyDown(Window* sender, KeyEventArg& eventArg) { ; }
	virtual void onKeyUp(Window* sender, KeyEventArg& eventArg) { ; }
	//! @}
};

	} // namespace system
} // namespace dw

#endif // !DW_SYSTEM_WINDOW_EVENT_LISTENER
